package com.lz.ovuola.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

@Table(name = "physiological_estimate_data", uniqueConstraints = { @UniqueConstraint(columnNames = { "id" }) })
@Entity(name = "physiologicalEstimateDataDo")
public class PhysiologicalEstimateDataDo extends BaseDo {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2229894419095639441L;

	@Id
	@GeneratedValue
	private Integer id;

	/**
	 * 用户id
	 */
	@Column(name = "user_id")
	private Integer userId;

	/**
	 * 本次生理周期
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "start_time")
	private Date startTime;

	/**
	 * 预估排卵日
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "estimate_ovulation_time")
	private Date estimateOvulationTime;

	/**
	 * 预估下次例假开始时间
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "estimate_next_start_time")
	private Date estimateNextStartTime;
	/**
	 * ovu内最高含水量
	 */
	@Column(name = "water_content")
	private Float waterContent;

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "create_time")
	private Date createTime;
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "update_time")
	private Date updateTime;
	/**
	 * 公式 1:a 2:b
	 */
	@Column(name = "formula")
	private Integer formula;

	public PhysiologicalEstimateDataDo() {
		super();
		// TODO Auto-generated constructor stub
	}

	public PhysiologicalEstimateDataDo(Integer userId, Date startTime,
			Date estimateOvulationTime, Date estimateNextStartTime,
			Date createTime, Date updateTime, Integer formula) {
		super();
		this.userId = userId;
		this.startTime = startTime;
		this.estimateOvulationTime = estimateOvulationTime;
		this.estimateNextStartTime = estimateNextStartTime;
		this.createTime = createTime;
		this.updateTime = updateTime;
		this.formula = formula;
	}

	public PhysiologicalEstimateDataDo(Integer userId, Date startTime,
			Date estimateOvulationTime, Date estimateNextStartTime,
			Float waterContent, Date createTime, Date updateTime,
			Integer formula) {
		super();
		this.userId = userId;
		this.startTime = startTime;
		this.estimateOvulationTime = estimateOvulationTime;
		this.estimateNextStartTime = estimateNextStartTime;
		this.waterContent = waterContent;
		this.createTime = createTime;
		this.updateTime = updateTime;
		this.formula = formula;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEstimateOvulationTime() {
		return estimateOvulationTime;
	}

	public void setEstimateOvulationTime(Date estimateOvulationTime) {
		this.estimateOvulationTime = estimateOvulationTime;
	}

	public Date getEstimateNextStartTime() {
		return estimateNextStartTime;
	}

	public void setEstimateNextStartTime(Date estimateNextStartTime) {
		this.estimateNextStartTime = estimateNextStartTime;
	}

	public Float getWaterContent() {
		return waterContent;
	}

	public void setWaterContent(Float waterContent) {
		this.waterContent = waterContent;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public Integer getFormula() {
		return formula;
	}

	public void setFormula(Integer formula) {
		this.formula = formula;
	}
}
